package cn.iocoder.an.module.mold.controller.admin.rechecktobe.vo;

import cn.iocoder.an.module.mold.dal.dataobject.account.AccountDO;
import cn.iocoder.an.module.mold.dal.dataobject.drawingno.DrawingNoDO;
import cn.iocoder.an.module.mold.dal.dataobject.recheckcategory.RecheckCategoryDO;
import cn.iocoder.an.module.mold.dal.dataobject.upkeepcategory.UpkeepCategoryDO;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.VO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;

import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 待复检 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RecheckTobeRespVO  implements VO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23298")
    @ExcelProperty("主键")
    private Long id;


    @Schema(description = "图号id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15140")
    @Trans(type = TransType.SIMPLE, target = DrawingNoDO.class, fields = "drawingNo", ref = "drawingNo")
    private Long drawingNoId;

    @Schema(description = "图号")
    @ExcelProperty("图号")
    private String drawingNo;

    @Schema(description = "模具台账id")
    @ExcelProperty("模具台账id")
    @Trans(type = TransType.SIMPLE, target = AccountDO.class, fields = {"name", "code", "totalUsageCount", "usedCount", "lastUpkeepTime", "nextUpkeepTime"}, refs = {"name", "code", "totalUsageCount", "usedCount", "lastUpkeepTime", "nextUpkeepTime"})
    private Long accountId;

    @Schema(description = "模具名", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @ExcelProperty("模具名")
    private String name;

    @Schema(description = "编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("编码")
    private String code;

    @Schema(description = "复检类型id", example = "23971")
    @Trans(type = TransType.SIMPLE, target = RecheckCategoryDO.class, fields = {"name"}, refs = {"recheckCategory"})
    private Long recheckId;

    //保养分类
    @Schema(description = "复检分类", example = "工装保养")
    @ExcelProperty("复检分类")
    private String recheckCategory;

    @Schema(description = "上次复检日期")
    @ExcelProperty("上次复检日期")
    private LocalDateTime lastRecheckTime;

    @Schema(description = "是否临时复检")
    @ExcelProperty("是否临时复检")
    private Integer ifTmp;

    @Schema(description = "任务状态", example = "2")
    @ExcelProperty("任务状态")
    private Integer status;

    @Schema(description = "任务id", example = "4213")
    @ExcelProperty("任务id")
    private Long taskId;

    @Schema(description = "复检项目主键", example = "29831")
    @ExcelProperty("复检项目主键")
    private Long itemId;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "提醒标志位", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("提醒标志位")
    private Integer remindF;

}
